﻿using System;

namespace Vk.Methods.Groups
{
    /// <summary>
    ///     Информация о занесении в черный список сообщества текущего пользователя
    /// </summary>
    public class BaseBanInfo
    {
        /// <summary>
        ///     Комментарий к бану
        /// </summary>
        public string Comment { get; set; }

        /// <summary>
        ///     Время окончания бана (или 1.1.1970 00:00 (UnixTime == 0), если бан навсегда)
        /// </summary>
        public DateTime? EndDate { get; set; }

        public BaseBanInfo(ApiNode node)
        {
            Comment = node.String("comment");
            EndDate = node.DateTime("end_date");
        }
    }

    /// <summary>
    ///     Информация о занесении в черный список сообщества пользователя
    /// </summary>
    public class BanInfo : BaseBanInfo
    {
        /// <summary>
        ///     ID админа
        /// </summary>
        public int? AdminId { get; set; }

        /// <summary>
        ///     Время бана
        /// </summary>
        public DateTime? Date { get; set; }

        /// <summary>
        ///     Причина бана
        /// </summary>
        public BanReason Reason { get; set; }

        public BanInfo(ApiNode node) : base(node)
        {
            if (node == null)
                return;

            AdminId = node.Int("admin_id");
            Date = node.DateTime("date");
            Reason = new BanReason((BanReason.BanReasonEnum) node.Int("reason"));
        }
    }
}